
package com.xbongbong.pro.domain.dao;

import com.xbongbong.pro.domain.entity.ChartEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


/**
 * @author autoGen
 * @date 2019-01-07 11:13:40
 */
@Repository
@Mapper
public interface ChartDao {

    Integer insert(ChartEntity chart);

    Integer update(ChartEntity chart);

    void insertBatch(@Param("list") List<ChartEntity> chartList);

    Integer deleteByKey(@Param("key") Long key, @Param("corpid") String corpid);

    ChartEntity getByKey(@Param("key") Long key, @Param("corpid") String corpid);

    List<ChartEntity> findEntitys(@Param("param") Map<String, Object> param);

    List<ChartEntity> findMutiEntitys(@Param("param") Map<String, Object> param);

    Integer getEntitysCount(@Param("param") Map<String, Object> param);

    ChartEntity getSearch(@Param("corpid") String corpid , @Param("categoryId") Long categoryId, @Param("chartType") Integer chartType);
    /**
     * 批量更新
     * @author xingxing.xiao
     * @param param 参数
     */
    void batchUpdateEnable(@Param("param") Map<String, Object> param);

    void batchUpdateNumFormat(@Param("corpid") String corpid, @Param("idIn") List<Long> idIn, @Param("numFormat") Integer numFormat);

    List<ChartEntity> getStockChartList();

    List<ChartEntity> getReturnStockChartList();

    List<ChartEntity> getEntitysByNewData();

    void updateBatch(@Param("list") List<ChartEntity> chartEntityList, @Param("corpid") String corpid);

    void updateName(@Param("id") Long id, @Param("corpid") String corpid, @Param("name") String name, @Param("oldName") String oldName, @Param("memo") String memo);

    void updateButtonAttr(@Param("id") Long id, @Param("corpid") String corpid, @Param("buttonAttr") String buttonAttr);

    /**
     * 脚本专用：阶段设置内失败阶段开启/关闭模式改为使用阶段的类型，即只处理button_attr字段、且不限制corpid
     * 原来是使用的枚举 ChartConfigEnum
     * 改为按照类型 控制显隐：结束阶段-失败、结束阶段-取消
     * @param chartEntityList
     * @return void
     * @author zcp
     * @since v1.0
     * @version v1.0
     */
    void updateBatchButtonAttr(@Param("list") List<ChartEntity> chartEntityList);
}
